The settled interaction spec, re-skinned onto the 2.0 tokens: search collapses to an icon, a single accent FAB owns starting something new, and 项目 and 智能体 become two visible chips in the sheet it opens instead of two invisible defaults. Every frame is the same live component at 402 × 874 — tap the FAB, tap a chip, pick a project, switch the agent. The full mode/model/native configuration sheet is untouched; this is the fast lane beside it.
Idle Projects is now only Projects: nav, machine state, list. The single accent circle at the bottom right is the whole new-task affordance, and it reads as one thing rather than as a row of chrome the eye has to parse — an icon-only + at 56 dp on the accent, with real elevation and a short scrim gradient beneath it so it stays legible over a scrolling row. Tapping it raises the sheet that was designed in the earlier round, unchanged: multiline field on top, accessory row below with 项目 and 智能体 on the left and 发送 on the right. The two creation-time decisions are still visible before a word is typed; they simply live in the surface that creation happens in, not on the surface that supervision happens on. Dismissal is a scrim tap or a swipe on the grabber, and the draft survives it — the sheet is a place you can leave and come back to, which is what makes covering the list acceptable here where it was not acceptable for a permanent bar.
Breathing, not shimmer. A gradient sweep is a second material moving across a flat surface, and at this density it would run over five mono path bars at once and read as texture. Alpha breathing on the same fills the 2.0 system already uses keeps the screen still: one infiniteRepeatable per row, nothing new to build.
Staggered by 90 ms. Five rows breathing in phase blink as one block, which looks like a broken screen rather than a pending one; a small offset reads as a list arriving. Rows mirror the real card anatomy — status dot, title bar, mono path bar, trailing affordance — at the real 64 dp height, so nothing jumps when content replaces them.
One voice, in the header. The state line already owns machine status, so it carries the whole wait — 正在读取 Panda 上的项目… replaces 连接中…, the in-list engineer narration is deleted outright, and 审阅 2 stays hidden until the list lands. The dot goes muted and breathes on the same 1.4 s clock as the rows.
Kept from the settled spec. Search collapses to an icon and clears its filter on the way out; the FAB hides while filtering. Chips carry a folder glyph with a mid-truncated name and an identity dot with an agent name, always visible, never implicit. Pickers highlight their chip and flip its chevron while open.
Consequence worth naming. Freeing the filter row leaves 树形 / 平铺 without a home, so it rides the first section label at 44 pt instead of taking a row of its own. Project rows, the session list and chat are untouched, and 打开任意文件夹 is gone from this screen — it is the pinned 浏览其他文件夹… at the foot of the project picker.
Open for the build. Whether the FAB should shrink or hide on scroll-down, and whether 最近使用 should list three or five. Both are cheap to change and neither affects the structure above.